/**  
* @Title: AjaxResultVO.java
* @Package cn.net.mtons.persist.entity.vo
* @Description: TODO
* @author ma jinjian  
* @date 2015年12月20日 下午8:28:31
* @version V1.0  
*/ 
package cn.net.mtons.model.entity.vo;

/**
 * @ClassName: AjaxResultVO
 * @Description: TODO
 * @author ma jinjian
 * @date 2015年12月20日 下午8:28:31
 *
 */
public class AjaxResultVO extends ValidateResultVO{

	/**
	 * 操作结果标示符
	 * 0 - 表单数据验证失败
	 * 1 - 表单数据验证成功且相关业务操作成功
	 * 2 - 表单数据验证成功但相关业务操作失败
	 * -1 - 表单中存在token，且token验证失败
	 */
	private int flag = 1;
	
	/**
	 * flag为0时，该字段为验证失败的具体信息
	 * flag为1时，该字段为相关业务操作成功后，返回给客户端数据
	 * flag为2时，该字段为业务操作失败的具体信息
	 */
	private Object data;
	
	/**
	 * 专门用来向前台客户端传送专门的信息字段
	 */
	private String message = "";

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}
	
	public AjaxResultVO appendMessage(String message) {
		this.message += message + "\n";
		return this;
	}

	public void success() {
		this.flag = 1;
		super.success();
	}
	
	public void fail() {
		this.flag = 2;
		super.fail();
	}
	
	public void fail( String message ) {
		this.flag = 2;
		this.message = message;
		super.fail();
	}

	public Object getData() {
		return data;
	}

	public void setData(Object data) {
		this.data = data;
	}

	public int getFlag() {
		return flag;
	}

	/**
	 *  操作结果标示符
	 * 0 - 表单数据验证失败
	 * 1 - 表单数据验证成功且相关业务操作成功
	 * 2 - 表单数据验证成功但相关业务操作失败
	 * @param flag
	 */
	public void setFlag(int flag) {
		this.flag = flag;
	}

	@Override
	public String toString() {
		return "AjaxResultVO [flag=" + flag + ", data=" + data + ", message=" + message + "]";
	}
}
